package main

import (
	"errors"
	"fmt"
)

type calcFunc func(int, int) int

func add(x, y int) int {
	return x + y
}

func sub(x, y int) int {
	return x - y
}

func calculate(x, y int, f calcFunc) (int, error) {
	if f == nil {
		return 0, errors.New("invalid calcFunc")
	}
	return f(x, y), nil
}

func main() {
	res, err := calculate(1, 2, add)
	if err != nil {
		fmt.Println("ERROR:", err)
	}
	fmt.Println("Result:", res)
}